<?php

/**
 * Store_LatestController
 * 
 * Модуль магазина, контроллер последних посещенных товаров
 * 
 * @package   Store
 * @author    Игорь Будасов aka Lord <igor.budasov@gmail.com> 
 * @copyright Игорь Будасов aka Lord <igor.budasov@gmail.com> 
 */
 
class Store_LatestController extends Lord_Controller_Action 
{ 

    // переменная указывает сколько последних товаров отображать
    private $_limit = 5;  
	
/*------------------------------------------------------------------------------*/
         
    /**
     * Индексный метод. Отображает список товаров, которые отметил юзер
     */
     
    public function indexAction()
    {
        // проверяем, есть ли нужные куки
        $cookie = (isset($_COOKIE['Profit_Latest']))
                ? array_reverse($_COOKIE['Profit_Latest'])
                : array();
              
        // желаемые товары и их картинки  
        $latestImages = array();
        $latest = ($cookie != null)
                 ? $this->model->getSomeGoods($cookie)
                 : array();
        //$latest = array_chunk($latest, $this->_limit - 1);
        $latestImagesData = $this->model->getImages($latest)->toArray();
        foreach($latestImagesData as $image)
        {
            $latestImages[$image['gid']] = $image['file'];
        }
         
        // назначаем в шаблон вида
        $this->view->latest = $latest;  
        $this->view->latestImages = $latestImages;
        return;
    }

/*------------------------------------------------------------------------------*/

    /**
    * Добавление товара в список желаний
    */
    
    public function addAction()
    {
        // смотрим айдишник товара
        $id = $this->_checkId();
        
        // устанавливаем куку с этим айдишником
        $ok = setcookie('Profit_Latest['.$id.']',     // имя куки
                        $id,                          // значение
                        time()+60*60*24*30,           // срок хранения
                        '/',                          // путь на сервере
                        '.' . $_SERVER['SERVER_NAME'] // имя сервера
                        );   
        
        $cookies = (isset($_COOKIE['Profit_Latest']))
                 ? array_reverse($_COOKIE['Profit_Latest'])
                 : array();
        
        // если в списке больше чем нужно - удаляем    
        $i = 1;
        foreach($cookies as $cookie)
        {   
            $i = $i+1;       
            if($i > $this->_limit) 
            {
                $ok = setcookie('Profit_Latest['.$cookie.']',  // имя куки
                        $cookie,                               // значение
                        time()-60*60*24*30,                    // срок хранения
                        '/',                                   // путь на сервере
                        '.' . $_SERVER['SERVER_NAME']          // имя сервера
                        );
            }
            
        }
        return;
    }


/*==============================================================================*/

	/**
	* Приватный метод для проверки айдишника записи
	*/
	
	private function _checkId()
	{
		$id = $this->_getParam('id');
		 
		if( $id == false
			or $id == null
			or empty($id)
			or !isset($id))
		{
			return 0;
		}
		else
		{
			return (int)$id;
		}
	}

/*------------------------------------------------------------------------------*/
}
